package com.zhj.helloframework.aop;

import net.sf.cglib.proxy.Enhancer;
import net.sf.cglib.proxy.MethodInterceptor;

/**
 * @Author: zhj
 * @Description: 根据目标对象和我们的增强逻辑，组合出最终的代理类对象
 * @Date: 2021/10/8 16:59
 * @Version: 1.0
 */
public class ProxyCreator {

    /**
     * 根据目标对象和我们的增强逻辑，组合出最终的代理类对象
     * @param targetClass 需要增强的类所对应的对象
     * @param methodInterceptor 具体的增强逻辑所对应的对象
     * @return 最终的代理类对象
     */
    public static Object createProxy(Class<?> targetClass, MethodInterceptor methodInterceptor) {
        // Enhancer会根据targetClass和methodInterceptor动态生成我们需要的最终代理对象，然后返回
        return Enhancer.create(targetClass,methodInterceptor);
    }
}
